คำนวณค่าใน textbox ช่วยดูโค้ดหน่อยครับ คือเวลาผมกรอกตัวเลขในคำนวณกันเช่น a1=123.10 a2=123.20 จะรวมโดยอัตโนมัติ
จาก
var val1 = parseFloat(document.form1.a1.value);
var val2 = parseFloat(document.form1.a2.value);
ลองเปลี่ยนเป็ฯ
var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');
var val1 = parseFloat(a1);
var val2 = parseFloat(a2);
ดูนะครับ
Date :
2010-07-07 10:19:55
By :
pjgunner
ทำงานได้โอเคเลยครับ แต่....... ผลลัพธ์ที่ได้ ไม่แสดงหลักของตัวเลขอ่าครับ เช่น พอได้ผลลัพธ์ 145000 ก็แสดงแบบนี้เลย ไม่แสดงเป็น
145,000 อ่าคับ มีคอมมาด้วยได้ป่าวครับ ผมวานผู้รู้ช่วยด้วยครับ ^^ ขอบคุณครับ
Date :
2011-02-24 22:50:22
By :
BB
ใช้ number_format() คับ
Date :
2011-02-24 23:40:31
By :
boodemon
ขอบคุณคุณสายหมอกครับ แต่ว่า.... แล้วเหมือนในโค้ดนี้ เขาใส่ตรงไหนหรอครับ รบกวนอีกครั้งน่ะครับ ขอบคุณครับ
Date :
2011-02-26 00:38:50
By :
BOY
ขอความช่วยเหลือทุกท่านครับ T_T
อย่างโค้ดที่ให้มาด้านบนสุดอ่ะครับ ผลลัพธ์ที่ได้ มันไม่มีหลักแสดงน่ะครับ เช่นเราป้อน 1,500 มันก็แสดง 1500
ผมใช้ทุกวิถีทางแล้วครับ ทั้ง number_format ก็ไม่แสดงผลลัพธ์ที่ถูกต้องสักทีอ่าครับ ช่วยด้วยครับ ทุกท่าน
Date :
2011-03-04 00:01:04
By :
majung
echo number_format($ผลลัพธ์);
Date :
2011-03-04 08:57:26
By :
compeng
ขอบคุณน่ะครับ แต่....งง ครับ เหอะๆๆๆ ลองดูแล้วไม่ได้อ่าครับ
Date :
2011-03-04 10:05:41
By :
majung
Code (PHP)
กำหนด ให้ $num = 1500
ใช้ <br>
<?php $num=1500;?>
number_format($num,2) จะแสดงดังนี้ <font color="#0000CC"><?php echo number_format($num,2); ?></font><br>
number_format($num) จะแสดงดังนี้ <font color="#0000CC"><?php echo number_format($num); ?></font>
ลองดูคับ
Date :
2011-03-04 10:41:20
By :
compeng
ขอบคุณ...คุณ King_R_Ther มากๆครับ ผมอยากอธิบายให้คุณฟังน่ะครับ (อย่าหาว่าผมเรื่องมากเลย)
คือ..... ค่าที่ได้มันเป็นค่าที่อยู่ใน Javascript อ่าครับ มันก็เลยแสดงตามที่มันเห็น เช่น
if (document.form1.p1.value == "" && document.form1.a3.value == "")
{
var nul = "0";
var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');
var val1 = parseFloat(a1);
var val2 = parseFloat(a2);
document.form1.p2.value=nul;
document.form1.a4.value=val1+val2;
document.form1.a5.value=val1+val2;
}
เอาเป็นว่า ตามที่ผมเข้าใจน่ะครับ ใน textfiled ฟอร์มที่เรากรอกอ่าครับ มันสามารถที่จะแยกจำนวนต่างๆด้วยการคั่นเจ้า คอมม่าไว้ด้วยกัน (นั้นคือในส่วนของ function ที่เรากำหนดว่าให้เป็นอย่างไร) เสร็จหลังจากนั้นมันก็จะมาเข้าสู่ฟังก์ชั่นการคำนวณค่าอ่าครับ (คือเจ้าข้างบนนี่ล่ะครับ) จากนั้น เช่นผมมี textfiled อยู่ 2 ช่อง ผมขออธิบาย 1 ช่องน่ะครับ คือ ถ้าเราจะนำมันมาคำนวณเลยมันก็คงทำไม่ได้ เพราะค่าของมันยังคั่นคอมม่าอ่าครับ จาก
var a1 = document.form1.a1.value.split(',').join(''); // เลยต้องแยกเจ้า คอมม่าออกแล้วนำค่ามาต่อกันเพื่อทำการคำนวณกับค่าอื่นอ่าครับ
หลังจากนั้น ก็แปลงค่าจากจำนวนเต็ม มาอยู่ในรูป ทศนิยมอ่าครับ
var val1 = parseFloat(a1); //เพื่อทำการคำนวณกับค่าอื่นอ่าครับ
ตามความเข้าใจผมน่ะครับ(อย่าว่ากันเลยครับ ^^)
จากนั้นก็เอาค่าที่ยังไม่ได้คั่นเจ้าคอมม่า แต่อยู่ในรูปของตัวเลขทศนิยมที่แสดงผลลัพธ์แล้ว ไปแสดง textfiled ที่โชว์ค่า
document.form1.a4.value=val1;
(อย่า งง เลยน่ะครับ อิอิ ผมอธิบายไม่เก่งครับ)
เห้อออออออออออ ...... มันก็เลยเป็นแบบนี้แหละครับ(ผมคิดว่าน่ะครับ)
เป็นไปได้ไหม ถ้าผมจะเอาเจ้าค่า val1 ไปใส่ฟังก์ชั่น number_format ของ php อ่าครับ ช่วยด้วยน่ะครับ T_T
ขอบคุณครับ
Date :
2011-03-04 11:30:26
By :
majung
ลองดูครับ
Code (PHP)
<script language="javascript">
function number_format( number, decimals, dec_point, thousands_sep ) {
var n = number, prec = decimals, dec = dec_point, sep = thousands_sep;
n = !isFinite(+n) ? 0 : +n;
prec = !isFinite(+prec) ? 0 : Math.abs(prec);
sep = sep == undefined ? ',' : sep;
var s = n.toFixed(prec),
abs = Math.abs(n).toFixed(prec),
_, i;
if (abs > 1000) {
_ = abs.split(/\D/);
i = _[0].length % 3 || 3;
_[0] = s.slice(0,i + (n < 0)) +
_[0].slice(i).replace(/(\d{3})/g, sep+'$1');
s = _.join(dec || '.');
} else {
s = abs.replace('.', dec_point);
}
return s;
}
document.write(number_format(1000000.00, 2, '.', ',')); // ทดสอบ
</script>
ยังคงยืนยัน ฟังก์ชั่น number_format(); 555+
ประวัติการแก้ไข 2011-03-04 15:01:34 2011-03-04 15:01:38
Date :
2011-03-04 15:00:37
By :
compeng
ขอบคุณ คุณ King_R_Ther มากเลยครับ
แต่ผมอยากได้รูปแบบเดียวกับ idea ของเจ้าของกระทู้น่ะครับ พอดีของผมมีค่าในการนำมาคำนวณมากกว่าของเขาเท่านั้นเองครับ
คืมผมต้องการช่วงนี้อ่าครับ
if (document.form1.p1.value == "" && document.form1.a3.value == "")
{
var nul = "0";
var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');
var val1 = parseFloat(a1);
var val2 = parseFloat(a2);
document.form1.p2.value=nul;
document.form1.a4.value=val1+val2; // ช่วงการบวกกันแล้วนำผลลัพธ์มาแสดงอ่าครับ Val1+Val2
document.form1.a5.value=val1+val2;
}
เป็นไปได้ไหม ที่เราสามารถใส่ฟังก์ชั่นพิเศษ number_format() ของ php มาใส่ใน Javascript เช่น
document.form1.a4.value='<?php number_format(val1,2,".",",")?>'; // มั่วๆเอาน่ะครับ อิอิ
เป็นไปได้ป่าวครับ สงสัยๆๆๆ อยากให้เป็นแบบนี้อ่าครับ
Date :
2011-03-04 15:23:34
By :
majung
Load balance : Server 01